package mainstests;

import java.util.List;
import java.util.Vector;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import services.AdministradorFacade;
import services.CotizacionService;
import services.ExchangeFormatService;
import services.OrdenCompraService;
import services.VentaService;

import com.uade.ws.client.AdministradorListas;
import com.uade.ws.client.AdministradorListas_Service;

import entities.Cotizacion;
import entities.ItemCotizacion;
import entities.PedidoVenta;
import entities.Venta;
import entities.xml.CotizacionXML;
import finals.Finals;

public @Stateless class TestsBean implements Tests {

	@EJB private CotizacionService cotService;
	@EJB private OrdenCompraService ocService;
	@EJB private ExchangeFormatService exchangeFormatService;
	@EJB private VentaService ventaService;
	@EJB private AdministradorFacade admFacadeBean;
	
	@Override
	public void cotizar() {
		List<ItemCotizacion> items = new Vector<ItemCotizacion>();
		
		String strPedidoCotizacionXML = Finals.PEDIDO_COTIZACION_TEST;
		
		items = exchangeFormatService.getItemsCotizacionFromEF(strPedidoCotizacionXML);
//		ItemCotizacion iCot1 =  new ItemCotizacion();
//		iCot1.setCantidad(30);
//		iCot1.setRodamiento(new Rodamiento(null,null,"100","108W"));
//		items.add(iCot1);
//		
//		
//
//		ItemCotizacion iCot2 =  new ItemCotizacion();
//		iCot2.setCantidad(100);
//		iCot2.setRodamiento(new Rodamiento("Alemania","NSK","100","108W"));
//		items.add(iCot2);
		
		Cotizacion cotizacion = cotService.cotizar(items);
//		for (ItemCotizacion itemCotizacion : cotizacion.getListaItemCotizacion()) {
//			System.out.println("Rodiamiento codigo: "+ itemCotizacion.getRodamiento().getCodigo());
//			System.out.println("\tPrecio: " + itemCotizacion.getPrecio());
//			System.out.println("\tCantidad " + itemCotizacion.getCantidad());
//			System.out.println();
//		}
		

		String strCotizacionXML = exchangeFormatService.toEF(cotizacion, new CotizacionXML());
		System.out.println(strCotizacionXML);
	}

	@Override
	public void pruebaWSProveedor() {
		AdministradorListas_Service admiListasService = new AdministradorListas_Service();
		AdministradorListas admiListas = admiListasService.getAdministradorListasPort();
//		AdministradorListasService admiListasService = new AdministradorListasService();
//		AdministradorListasBean admiListasBean = admiListasService.getAdministradorListasBeanPort();
		String listasPrecios = admiListas.obtenerListaPrecios();
		System.out.println(listasPrecios);
	}

	@Override
	public void generarYEnviarOC() {
//		List<ItemVenta> items = new Vector<ItemVenta>();
//		
//		ItemVenta iCot1 =  new ItemVenta();
//		iCot1.setCantidad(30);
//		iCot1.setRodamiento(new Rodamiento(null,null,"100","108W"));
//		items.add(iCot1);
//		
//		
//
//		ItemCotizacion iCot2 =  new ItemCotizacion();
//		iCot2.setCantidad(100);
//		iCot2.setRodamiento(new Rodamiento("Alemania","NSK","100","108W"));
		//items.add(iCot2);
		
//		String strPedidoVenta = Finals.PEDIDO_VENTA_TEST;
//		String ofVentaAlias = "ov1";
//		PedidoVenta pedidoVenta = exchangeFormatService.getPedidoVenta(strPedidoVenta);
//		pedidoVenta.setOfVentaAlias(ofVentaAlias);
//		Venta venta = ventaService.generarRemito(pedidoVenta);
//		ocService.generarYEnviarOC(venta.getItems());
		
		admFacadeBean.procesarOrdenCompra(Finals.PEDIDO_VENTA_TEST, "ov1");
	}

	@Override
	public void generarYEnviarRemito(String strPedidoVenta) {
		String ofVentaAlias = "ov1";
		PedidoVenta pedidoVenta = exchangeFormatService.getPedidoVenta(strPedidoVenta);
		pedidoVenta.setOfVentaAlias(ofVentaAlias);
		Venta venta = ventaService.generarRemito(pedidoVenta);
		ventaService.enviarRemitoAofV(venta, ofVentaAlias);
	}
	
}
